Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

320
Visualizações
SoundPool "AudioFlinger no pudo crear la pista, estado: -12"

Tengo una aplicación de Android con un solo botón. Cuando se hace clic en el botón, la aplicación comienza a reproducir (en bucle) el sonido cargado con SoundPool. Cuando se vuelve a hacer clic en el botón, el sonido se detiene y luego comienza de nuevo.

Pero el problema es que el sonido se reproduce solo cada dos veces.

  • Haga clic en la primera vez -> el sonido comienza a reproducirse
  • Haga clic en la segunda vez -> el sonido se detiene pero no comienza de nuevo
  • Haga clic en la tercera vez -> el sonido comienza a reproducirse
  • Haga clic en la cuarta vez -> el sonido se detiene pero no comienza a reproducirse
  • y así...

Cuando el sonido no se reproduce, aparece este error en el logcat:

 E/AudioTrack: AudioFlinger could not create track, status: -12 E/SoundPool: Error creating AudioTrack

Cuando elimino el bucle (cambio -1 a 0), ¡todo funciona completamente bien!

El sonido que estoy reproduciendo es un archivo MP3, tamaño 71,6 KiB.

He probado esto en Sony Xperia U, con Android 4.1.2 (no funciona). Pero en mi Huawei Honor 6 (Android 6.0) todo funciona, ¡incluso el bucle!

¿Qué estoy haciendo mal?


Aquí está mi código:

 import android.media.AudioManager; import android.media.SoundPool; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { private int lastStreamId = 0; private int soundID; private SoundPool soundPool; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); soundPool = new SoundPool(1, AudioManager.STREAM_MUSIC, 0); soundID = soundPool.load(this, R.raw.sound01, 1); Button button = (Button) findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { soundPool.stop(lastStreamId); lastStreamId = soundPool.play(soundID, 1, 1, 1, -1, 1); } }); } }

EDITAR:

No tengo permitido subir el sonido original aquí, pero aquí hay otro sonido que hace lo mismo. Excepto que ahora el sonido se reproduce solo en el primer clic ; todos los siguientes clics simplemente lo silencian y escupen el error anterior.

El sonido está aquí: sound01.mp3

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Como puede ver aquí , el código de error 12 significa Out of memory en el entorno Linux. Aparentemente, son algunos problemas relacionados con la asignación de memoria en dispositivos Jelly Bean (supongo que para dispositivos pre-lollipop).

Reduje la muestra de su archivo original de 177808 kbps a 32000 kbps, y comenzó a funcionar como se esperaba en los dispositivos anteriores a la piruleta.

Por lo tanto, debe reducir la muestra de su archivo de audio para dispositivos anteriores a la piruleta. Es mejor tener un raw-v21 para archivos de audio originales, y ponerlos en formato raw . Por lo tanto, los dispositivos a partir de API 21 utilizarán la versión original.

ingrese la descripción de la imagen aquí

Aquí está el archivo reducido.

over 4 years ago · Santiago Trujillo Relatório

0

Tuve el mismo problema. Haz lo siguiente:

(1) asegúrese de que sus archivos tengan menos de 1 MB

(2) lo que es más importante, libere sus instancias de SoundPool después de usarlas para liberar espacio en la memoria

 soundPool.release();
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda